本发明涉及一种适用于静态自组编队的路由方法,针对静态自组编队这种特定的组织结构,在编队内部进行集中式拓扑控制,然后根据拓扑控制的结果对各编队进行分簇,并采用一种新的双频分级路由方法来保证编队内部及编队间各成员之间快速可靠地建立路由和传输数据。其特征是包括下列步骤:编队内拓扑控制、编队网络结构建立、编队网络结构维护、寻找传输路由、传输路由维护、路由差错控制和重新建立路由。本发明能够实现编队内及编队间各成员之间快速可靠地建立路由和传输数据,并能够降低无线传输中的干扰,进一步提高网络容量,以及延长节点寿命,提高网络的生存期。
1.一种适用于静态自组编队的路由方法,其特征是:包括下列步骤:编队内拓扑控制、编队网络结构建立、编队网络结构维护、寻找传输路由、传输路由维护、路由差错控制和重新建立路由,下面分别说明:编队内拓扑控制具体内容包括:网络初始化时,将所有节点的发射功率设为最大值,然后各编队成员通过GPS定位系统获得自己的坐标信息,并将该坐标信息发送到本编队指定的中心节点上,中心节点接收并缓存本编队内所有其他节点的位置信息,当全部搜集到后运行集中式拓扑控制算法,计算各节点的最佳发射功率值,然后将各节点的最佳发射功率值分别发送到对应节点,当编队内所有节点都接收到最佳发射功率消息后,将自己的发射功率设置为该最佳发射功率值,拓扑控制的实现以典型的无线自组网路由协议AODV为基础,在AODV路由协议中添加两种控制消息:POSITION和POWER,分别对应于编队内各节点向中心节点发送的拓扑信息以及中心节点向各对应节点发送的功率配置信息,并且添加了其对应的消息发送和接收函数,并添加定时器用于拓扑控制的执行,另外,还修改AODV的HELLO消息及其处理流程,以解决拓扑控制后可能出现的单向信道问题;POSITION消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="472"/> POWER消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="472"/> HELLO消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="468"/> 编队网络结构建立具体内容包括:根据编队内拓扑控制步骤所建立的编队内拓扑结构即编队内成员间的邻接关系,采用最大连接度分簇算法对各编队进行分簇,形成簇首、簇的普通成员及编队内网关,其中,簇首和它的普通成员及编队内网关组成低级网络,而簇首之间组成高级网络,各低级网络节点通过在频段1上以通过拓扑控制得到的最佳发射功率交互HELLO报文,建立起低级网络结构,簇首维护簇的普通成员表及编队内网关表,普通节点记录本簇的簇首,编队内网关则维护所有可达的本编队簇首表;各高级网络节点在频段2上以最大发射功率交互HELLO报文,建立起高级网络结构,而当某一节点接收到其他编队的簇首广播的HELLO报文,且本节点为非簇首节点时,将自己变为编队间网关,自己在本编队内的身份不变,开始在频段2上以最大发射功率交互HELLO报文,成为高级网络节点,各编队间网关和簇首都维护一张编队间通信表,其成员包括所有可达的簇首及编队间网关,建立好网络结构后,低级网络节点间的通信将在频段1上以最佳发射功率进行,而高级网络节点间的通信将在频段2上以最大发射功率进行;编队网络结构维护具体内容包括:各低级网络节点和高级网络节点通过在各自的频段上周期性地交互HELLO报文来维护相应的网络结构,当节点发现它所维护表格中的成员超过生存期时,将其从成员表中删除,各节点的状态也可能随之发生变化:对于低级网络节点,当簇首发现它的普通成员个数为0时,将自己的状态改为未分配;当簇的普通成员发现自己的簇首已不存在时,将自己的状态改为未分配;当网关发现它可达的簇首个数为1时,将自己的状态改为普通成员,而对于高级网络节点,当编队间网关发现自己的编队间通信成员已没有外编队成员时,则自己不再是编队间网关;寻找传输路由具体内容包括:传输路由以AODV路由协议为基础,如果是编队内部通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,在频段1上采用单频分级的路由方式:普通节点到簇首,簇首到编队内网关,编队内网关再到可达的其它簇首,直到找到目的节点;如果是编队间通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,采用一种新的双频分级路由方式:在所述双频分级路由方式的协议中设置一个快速路由请求次数的上限值,当发往同一目的节点的路由请求次数小于此上限值时,采用传统的双频分级路由方式:普通节点到簇首,簇首再到普通节点或可达的其它簇首及编队间网关,直到找到目的节点,低级网络节点之间的通信在频段1上进行,而高级网络节点之间的通信在频段2上进行;当路由请求次数已超过上限值时,说明高级网络可能不连通,则同时采用单频分级和双频分级两种方式:普通节点在频段1上以最佳发射功率向自己的簇首发送路由请求,簇首则同时在频段1和频段2上分别以最佳发射功率和最大发射功率向自己的编队内网关和编队间通信成员发送路由请求,编队内网关在频段1上以最佳发射功率向自己的可达簇首发送路由请求,而编队间网关则在频段2上以最大发射功率向自己的编队间通信成员发送路由请求,直到找到目的节点,另外,在发送路由请求报文RREQ过程中建立或更新反向路由以及返回路由回复报文RREP过程中建立或更新正向路由时记录本条路由所使用的频段,以保证数据包的正确传输;传输路由维护具体内容包括:对于洪泛路由及单频分级路由,各节点通过在频段1上周期性地交互HELLO报文来确认邻居的存在,如果节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,则认为该邻居节点已移动或故障,并将它到该邻居节点的链路标记为断开;而对于双频分级路由,各低级网络节点及高级网络节点分别通过在各自的频段上周期性地交互HELLO报文来确认其邻居节点的存在,如果节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,就认为该节点已移动或故障,并将到它的链路标记为断开,路由差错控制具体内容包括:如果节点在使用某条链路时发现该链路断开,则从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知受链路断开影响的节点,通知相关节点将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由,并停止在此断开路由上继续发送数据,重新建立路由具体内容包括:某一节点如果需要发送数据包,而当传输路由中断,发现到目的节点的路由已经不存在时,则该节点将要传输的数据包进行缓存,为目的节点继续寻找并建立一条新的路由,路由建立成功后,再将缓存里的数据包发送出去。
2.如权利要求1所述的一种适用于静态自组编队的路由方法,其特征是:寻找传输路由在编队间寻路,首先判断本节点是否是簇首或编队间网关,如果本节点不是簇首或编队间网关,则进行编队内寻路;否则再判断高级网络成员表是否存在目的节点,如果存在,则在频段2上直接向目的节点发送RREQ,返回;如果高级网络成员表中不存在目的节点,则判断高级网络成员表中是否存在和目的节点同一个编队的节点,如果存在,则在频段2上向所有目的编队的成员节点发送RREQ,返回;否则在频段2上向所有高级网络成员发送RREQ,并且判断路由条目中记录的请求次数是否大于上限值,如果请求次数已经大于上限值,则在频段1上向自己的编队内网关表和簇首表节点发送RREQ,返回。
3.如权利要求1所述的一种适用于静态自组编队的路由方法,其特征是:寻找传输路由在编队内寻路,编队内寻路首先判断本节点是否普通成员,如果是普通成员,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在频段1上向自己的簇首发送RREQ,如果一致,则再判断邻居列表中是否存在目的节点,如果存在,则在频段1上向目的节点发送RREQ,返回;如果不存在,则在频段1上向自己的簇首发送RREQ;如果本节点不是普通成员,则判断本节点是否簇首,如果是簇首,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在频段1上向自己所在的编队内网关和可达簇首发送RREQ,如果一致,则再判断簇成员表、编队内网关表以及可达簇首表中是否存在目的节点,如果存在,则在频段1上向目的节点发送RREQ,返回;如果不存在,则在频段1上向自己所在的编队内网关和可达簇首发送RREQ;如果本节点不是簇首,则判断本节点是否编队内网关,如果是编队内网关,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在频段1上向自己所有的可达簇首发送RREQ,如果一致,则再判断可达簇首表中是否存在目的节点,如果存在,则在频段1上向目的节点发送RREQ,返回;如果不存在,则在频段1上向自己所有的可达簇首发送RREQ。
4.如权利要求2所述的一种适用于静态自组编队的路由方法,其特征是:针对寻找传输路由在编队间寻路的过程进行快速路由查找1,首先判断本节点与目的节点是否在同一个编队,如果不在,则再判断高级网络成员表是否为空,如果不为空,则判断高级网络成员表中是否存在目的节点,如果高级网络成员表中存在目的节点,则在频段2上向目的节点转发RREQ分组;否则判断高级网络成员表中是否存在目的编队的成员,如果存在,则在频段2上向所有目的编队的成员转发RREQ分组;如果不存在,则在频段2上向所有高级网络成员表中节点转发RREQ分组,并且判断快速路由请求次数是否超过上限,如果超过则在频段1上向所有编队内网关转发RREQ,本节点本次寻路结束;如果本节点与目的节点在同一个编队或者高级网络成员表为空,则进行快速路由查找2,首先判断本节点是否为普通成员,如果是普通成员,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断邻居表中是否存在目的节点,如果存在则在频段1上向目的节点转发RREQ,返回;如果邻居表中不存在目的节点,则判断本节点是否与源节点在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源节点不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在频段2上向目的节点转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在频段2上向所有目的编队成员转发RREQ,返回;否则在频段1上向自己的簇首转发RREQ;如果本节点与目的节点不在同一个编队、与源节点在一个编队、本节点不是编队间网关,则在频段1上向自己的簇首转发RREQ;如果本节点不是普通成员,则判断本节点是否簇首,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断簇成员表、编队间网关表、可达簇首表是否存在目的节点,如果存在则在频段1上向目的节点转发RREQ,返回;如果不存在目的节点,则判断本节点是否与源节点在同一个编队,如果不在,则判断高级网络成员表中是否存在目的节点,如果存在,则在频段2上向目的节点转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在频段2上向所有目的编队成员转发RREQ,并且判断快速路由请求次数是否超过上限,如果没有超过则返回;如果本节点与目的节点不在同一个编队,或者与源节点在同一个编队,或者高级网络成员表中不存在目的编队成员,或者快速请求次数超过上限,则判断可达簇首表、编队间网关表是否为空,如果为空,则在频段1上广播转发RREQ,返回;如果不为空,则在频段1上向所有可达簇首和编队间网关转发RREQ,返回。
5.如权利要求3所述的一种适用于静态自组编队的路由方法,其特征是:针对寻找传输路由在编队内寻路的过程进行快速路由查找3,如果本节点不是簇首,则判断本节点是否为编队内网关,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断可达簇首表是否存在目的节点,如果存在则在频段1上向目的节点转发RREQ,返回;如果不存在目的节点,则判断本节点是否与源节点在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源节点不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在频段2上向目的节点转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在频段2上向所有目的编队成员转发RREQ,返回;如果本节点与目的节点不在同一个编队,或者与源节点在一个编队,或者本节点不是编队间网关,或者高级网络成员表中不存在目的编队成员,则判断可达簇首表是否为空,如果为空,则在频段1上广播转发RREQ,如果不为空,则在频段1上向所有可达簇首转发RREQ,返回。
技术领域本发明涉及无线自组网通信领域,特别是指一种适用于静态自组编队的路由方法,可应用于以静态自组编队为作战单元的军事行动中。在无固定基础设施或基础设施遭到破坏的野外军事行动中,为全军的协同行动及调度指挥提供了快速、可靠的无线通信支持,具有抗毁性、自组性等特点。
背景技术在无法预先铺设基础设施或基础设施遭到破坏的野外军事行动中,只有依靠无线自组网才能完成快速展开、机动灵活以及超视距信息交互的协同作战要求。在军事行动中,常根据任务使命和威胁环境形成以编队为基本作战单元的作战体系,编队内部统一管理,编队之间协同行动,并由高级指挥所统一调度,为军事行动的展开提供了很强的机动性和灵活性。在行军途中以及驻扎休息时,各编队队形基本保持不变,即编队内部成员间的邻接关系是基本固定的,称为静态自组编队。针对这种特定的组织结构,需要一种能够满足其通信需求的路由方法。目前针对无线自组网已提出了多种路由协议。从路由发现策略的角度可分为两大类:先验式路由协议和反应式路由协议。前者以DSDV、TBRPE、OLSR等为代表,其特点是每个节点在本地都必须保留反映整个网络最新变化的路由表,这类协议的路由获得延迟很小,因为路由表中已经包含了到各目标节点的路由。但形成完整的路由表及路由信息的维护和更新开销很大;后者以AODV、DSR、CBRP等为代表,其特点是节点不需要维护及时准确的路由信息,仅当需要发送报文时,源节点才在网络中发起路由查找过程,因此开销较小,更适合于拓扑动态变化、资源受限的无线自组网,已成为无线自组网路由协议的主流。路由协议的设计思想与网络逻辑结构密切相关,从网络结构的角度可将无线自组网路由协议划分为平面结构的路由协议和分级结构的路由协议。平面结构的网络比较简单,网络中所有节点的功能和地位平等,原则上不存在瓶颈节点,网络比较健壮。但平面结构最大的缺点是网络规模受限,可扩充性差。因此,为了降低节点成本,提供灵活、可靠的通信,并提高无线自组网的可扩展性,大型网络中通常采用分级结构。一种最常用的分级结构是分簇网络结构,将网络划分成若干个簇,每个簇由一个簇首和多个普通节点组成。簇首之间的通信需要借助于网关或分布式网关节点完成,簇首和网关形成了高一级的网络。在高一级网络中,又可以再分簇,形成更高一级的网络,直至最高级。在分簇结构中,簇首和簇成员的身份可动态变化,节点仍然自动组网。簇首节点负责簇间数据的转发、协调和管理。簇首可以预先指定,也可以由节点使用算法选举产生。分级结构的网络根据硬件的配置不同,又可以分为单频分级和多频分级两种。单频率分级网络中只有一个通信频率,所有节点使用同一频率通信,为了实现簇首之间的通信,要有网关节点的支持,簇首和网关形成了高一级的网络。这种分级结构提高了网络的可扩充性,但由于只有一个通信频率,所有节点仍处于同一冲突域中,对于大规模网络仍存在着严重的无线传输干扰。另外,簇首之间不能直接通信,相邻簇间的通信需要经过网关节点来跳转,增加了分组传输中的时延。在多频分级网络中,不同级采用不同的通信频率。低级节点的通信范围小,而高级节点要覆盖较大的通信范围。高级节点同时处于多个级中,有多个频率,用不同的频率实现不同级的通信。低级节点由簇首和它的普通成员组成,而高级节点通常只有簇首,簇首之间可以采用较大的传输功率直接进行通信。这样,节点间的寻路方式为:普通节点到簇首,簇首再到普通节点或可达的其它簇首,直到找到目的节点。但由于无线自组网中节点的移动性及能量的有限性,使得高级网络中的节点即使采用最大传输功率也不是总能保证高级网络的连通性。这样,采用前面所述的寻路方式就有可能找不到到达目的节点的路由。传统的路由协议以其各自的优势得到了广泛的应用,但没有任何一种路由协议能够刚好满足某一特定应用的需求。因此,面向特定应用的路由协议得到了越来越广泛的关注,它们面向不同的应用场景,用来满足特定的需求。网络拓扑结构也直接影响着相关的路由技术及其效用,不当的拓扑结构会降低系统性能,减少系统的有效容量,增加端到端的包延迟,降低网络的鲁棒性以及增加潜伏危险型。因此,拓扑与路由联合控制是无线自组网的一项关键技术。通过拓扑控制还可以节省电池能量、延长节点寿命,并减少节点在无线信道上的碰撞,提高信道的空间复用度,最终提高整个网络的容量。目前比较主流的拓扑控制方式有两种:集中式拓扑控制和分布式拓扑控制,它们各有优缺点。集中式拓扑控制的优点是算法较简单,中心节点管理和用户扩展容易;缺点是由于需要全网的拓扑信息,因此网络开销大,对中心节点的物理性能要求高,可靠性相对较低,不适合大规模、移动性强的Adxa0hoc网络的应用。分布式拓扑控制的优点是采用分布式算法,即使网络中某个局部出现故障,也不会影响全网的操作,因此具有很高的可靠性,同时由于只需要获得局部拓扑信息,网络开销较小,适用于大规模移动Adxa0hoc网络;缺点是算法复杂度高,对网络整体的控制和管理复杂。
发明内容本发明的目的在于针对上述现有技术中的不足之处而提供一种适用于静态自组编队的路由方法,该方法能够实现编队内及编队间各成员之间快速可靠地建立路由和传输数据,并能够降低无线传输中的干扰,进一步提高网络容量,以及延长节点寿命,提高网络的生存期。本发明的目的可以通过以下措施来达到:一种适用于静态自组编队的路由方法,包括下列步骤:编队内拓扑控制、编队网络结构建立、编队网络结构维护、寻找传输路由、传输路由维护、路由差错控制和重新建立路由,下面分别说明:编队内部拓扑控制具体内容包括:网络初始化时,将所有节点的发射功率设为最大值,然后各编队成员通过GPS定位系统获得自己的坐标信息,并将该信息发送到本编队指定的中心节点上,中心节点接收并缓存本编队内所有其他节点的位置信息,当全部搜集到后运行集中式拓扑控制算法,计算各节点的最佳发射功率值,然后将各节点的最佳发射功率分别发送到对应节点,当编队内所有节点都接收到最佳发射功率消息后,将自己的发射功率设置为该最佳值,拓扑控制的实现以典型的无线自组网路由协议AODV为基础,在AODV路由协议中添加两种控制消息:POSITION和POWER,分别对应于编队内各节点向中心节点发送的拓扑信息以及中心节点向各对应节点发送的功率配置信息,并且添加了其对应的消息发送和接收函数,并添加定时器用于拓扑控制的执行,另外,还修改AODV的HELLO消息及其处理流程,以解决拓扑控制后可能出现的单向信道问题;POSITION消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="485"/> POWER消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="475"/> Hello消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="475"/> 编队网络结构建立具体内容包括:根据编队内部拓扑控制步骤所建立的编队内拓扑结构即编队内成员间的邻接关系,采用最大连接度分簇算法对各编队进行分簇,形成簇首、簇的普通成员及编队内网关,其中,簇首和它的普通成员及编队内网关组成低级网络,而簇首之间组成高级网络,各低级网络节点通过在频段1上以通过拓扑控制得到的最佳发射功率交互HELLO报文,建立起低级网络结构,簇首维护簇的普通成员表及编队内网关表,普通节点记录本簇的簇首,编队内网关则维护所有可达的本编队簇首表;各高级网络节点在频段2上以最大发射功率交互HELLO报文,建立起高级网络结构,而当某一节点接收到其他编队的簇首广播的HELLO报文,且本节点为非簇首节点时,将自己变为编队间网关(同时还保持自己在本编队内的身份),开始在频段2上以最大发射功率交互HELLO报文,成为高级网络节点,各编队间网关和簇首都维护一张编队间通信表,其成员包括所有可达的簇首及编队间网关,建立好网络结构后,低级节点间的通信将在频段1上以最佳发射功率进行,而高级节点间的通信将在频段2上以最大发射功率进行;编队网络结构维护具体内容包括:各低级节点和高级节点通过在各自的频段上周期性地交互HELLO报文来维护相应的网络结构,当节点发现它所维护表格中的成员超过生存期时,将其从成员表中删除,各节点的状态也可能随之发生变化:对于低级节点,当簇首发现它的普通成员个数为0时,将自己的状态改为未分配;当簇的普通成员发现自己的簇首已不存在时,将自己的状态改为未分配;当网关发现它可达的簇首个数为1时,将自己的状态改为普通成员,而对于高级节点,当编队间网关发现自己的编队间通信成员已没有外编队成员时,则自己不再是编队间网关;寻找传输路由具体内容包括:传输路由以AODV路由协议为基础,如果是编队内部通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,在频段1上采用单频分级的路由方式:普通节点到簇首,簇首到编队内网关,编队内网关再到可达的其它簇首,直到找到目的节点;如果是编队间通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,采用一种新的双频分级路由方式:在协议中设置一个快速路由请求次数的上限值,当发往同一目的的路由请求次数小于此上限值时,采用传统的双频分级路由方式:普通节点到簇首,簇首再到普通节点或可达的其它簇首及编队间网关,直到找到目的节点,低级节点之间的通信在频段1上进行,而高级节点之间的通信在频段2上进行;当路由请求次数已超过上限值时,说明高级网络可能不连通,则同时采用单频分级和双频分级两种方式:普通节点在频段1上以最佳发射功率向自己的簇首发送路由请求,簇首则同时在频段1和频段2上分别以最佳发射功率和最大发射功率向自己的编队内网关和编队间通信成员发送路由请求,编队内网关在频段1上以最佳发射功率向自己的可达簇首发送路由请求,而编队间网关则在频段2上以最大发射功率向自己的编队间通信成员发送路由请求,直到找到目的节点,另外,在发送路由请求报文RREQ过程中建立或更新反向路由以及返回路由回复报文RREP过程中建立或更新正向路由时记录本条路由所使用的信道,以保证数据包的正确传输;传输路由维护具体内容包括:对于洪泛路由及单频分级路由,各节点通过在频段1上周期性地交互HELLO报文来确认邻居的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,则认为该邻居节点已移动或故障,并将它到该邻居节点的链路标记为断开;而对于双频分级路由,各低级节点及高级节点分别通过在各自的频段上周期性地交互HELLO报文来确认其邻居节点的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,就认为该节点已移动或故障,并将到它的链路标记为断开,路由差错控制具体内容包括:如果节点在使用某条链路时发现该链路断开,则从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知受链路断开影响的节点,通知相关节点将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由,并停止在此断开路由上继续发送数据,重新建立路由具体内容包括:某一节点如果需要发送数据包,而当传输路由中断,发现到目的节点的路由已经不存在时,则该节点将要传输的数据包进行缓存,为目的节点继续寻找并建立一条新的路由,路由建立成功后,再将缓存里的数据包发送出去,寻找传输路由在编队间寻路,首先判断本节点是否是簇首或编队间网关,如果本节点不是簇首或编队间网关,则进行编队内寻路;否则再判断高级网络成员表是否存在目的节点,如果存在,则在信道2上直接向目的节点发送RREQ,函数返回;如果高级网络成员表中不存在目的节点,则判断高级网络成员表中是否存在和目的节点同一个编队的节点,如果存在,则在信道2上向所有目的编队的成员节点发送RREQ,函数返回;否则在信道2上向所有高级网络成员发送RREQ,并且判断路由条目中记录的请求次数是否大于上限值,如果请求次数已经大于上限值,则在信道1上向自己的编队内网关发送RREQ,函数返回;如果请求次数小于等于上限值,函数返回。寻找传输路由在编队内寻路,编队内寻路首先判断本节点是否普通成员,如果是普通成员,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己的簇首发送RREQ,如果一致,则再判断邻居列表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己的簇首发送RREQ;如果本节点不是普通成员,则判断本节点是否簇首,如果是簇首,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己所有的编队内网关和可达簇首发送RREQ,如果一致,则再判断簇成员表、编队内网关表以及可达簇首表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己所有的编队内网关和可达簇首发送RREQ;如果本节点不是簇首,则判断本节点是否编队内网关,如果是编队内网关,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己所有的可达簇首发送RREQ,如果一致,则再判断可达簇首表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己所有的可达簇首发送RREQ。快速路由查找1,首先判断本节点与目的是否在同一个编队,如果不在,则再判断高级网络成员表是否为空,如果不为空,则判断高级网络成员表中是否存在目的节点;如果本节点与目的在同一个编队或者高级网络成员表为空,则进行快速路由查找2,如果高级网络成员表中存在目的节点,则在信道2上向目的节点转发RREQ分组,返回;否则判断高级网络成员表中是否存在目的编队的成员,如果存在,则在信道2上向所有目的编队的成员转发RREQ分组,返回;如果不存在,则在信道2上向所有高级网络成员表中节点转发RREQ分组,并且判断快速路由请求次数是否超过上限,如果超过则在信道1上向所有编队内网关转发RREQ,如果没有超过上限则返回。快速路由查找2,首先判断本节点是否为普通成员,如果是普通成员,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断邻居表中是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果邻居表中不存在目的节点,则判断本节点是否与源在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,返回;否则在信道1上向自己的簇首转发RREQ;如果本节点与目的不在同一个编队、与源在一个编队、本节点不是编队间网关,则在信道1上向自己的簇首转发RREQ;如果本节点不是普通成员,则判断本节点是否簇首,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断簇成员表、编队间网关表、可达簇首表是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果不存在目的节点,则判断本节点是否与源在同一个编队,如果不在,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,并且判断快速路由请求次数是否超过上限,如果没有超过则返回;如果本节点与目的不在同一个编队,或者与源在同一个编队,或者高级网络成员表中不存在目的编队成员,或者快速请求次数超过上限,则判断可达簇首表、编队间网关表是否为空,如果为空,则在信道1上广播转发RREQ,函数返回;如果不为空,则在信道1上向所有可达簇首和编队间网关转发RREQ,函数返回。快速路由查找3,如果本节点不是簇首,则判断本节点是否为编队内网关,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断可达簇首表是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果不存在目的节点,则判断本节点是否与源在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,返回;如果本节点与目的不在同一个编队,或者与源在一个编队,或者本节点不是编队间网关,或者高级网络成员表中不存在目的编队成员,则判断可达簇首表是否为空,如果为空,则在信道1上广播转发RREQ,如果不为空,则在信道1上向所有可达簇首转发RREQ,返回。本发明与现有技术相比具有如下优点:在编队内部进行拓扑控制,延长了节点寿命,降低了无线传输中的干扰,提高了信道的空间复用度;在编队内建立分簇结构,使编队内部通信通过采用分级路由加快了路由查找的速度,减少了时延;编队之间的通信采用一种新的双频分级路由方法,当高级网络连通时,各编队间通信成员可以直接进行通信,进一步加快了路由查找的速度,并且由于高级节点之间的通信与低级节点之间的通信不在同一个频段上,进一步降低了无线传输中的干扰,提高了网络容量。而当高级网络不连通时,仍采用单频分级的路由方式,保证了数据传输的可靠性。
附图说明图1是本发明的程序步骤框图;图2是编队内拓扑控制流程图;图3是发送POSITION消息的流程图;图4是接收POSITION消息的流程图;图5是发送POWER消息的流程图;图6是接收POWER消息的流程图;图7是发送HELLO分组的流程图;图8是接收HELLO分组的流程图;图9、图10、图11是发送RREQ分组的流程图;图12、图13、图14、图15是接收RREQ分组的流程图。
具体实施方式本发明的技术方案是:针对静态自组编队这种特定的组织结构,在编队内部进行集中式拓扑控制,然后根据拓扑控制的结果对各编队进行分簇,并采用一种新的双频分级路由方法来保证编队内部及编队间各成员之间快速可靠地建立路由和传输数据。其特征是包括下列步骤:编队内拓扑控制、编队网络结构建立、编队网络结构维护、寻找传输路由、传输路由维护、路由差错控制和重新建立路由。所述的编队内部拓扑控制具体内容包括:网络初始化时,将所有节点的发射功率设为最大值。然后各编队成员通过GPS定位系统获得自己的坐标信息,并将该信息发送到本编队指定的中心节点上。中心节点接收并缓存本编队内所有其他节点的位置信息,当全部搜集到后运行集中式拓扑控制算法,计算各节点的最佳发射功率值,然后将各节点的最佳发射功率分别发送到对应节点。当编队内所有节点都接收到最佳发射功率消息后,将自己的发射功率设置为该最佳值。拓扑控制的实现以典型的无线自组网路由协议AODV为基础,在AODV路由协议中添加两种控制消息:POSITION和POWER,分别对应于编队内各节点向中心节点发送的拓扑信息以及中心节点向各对应节点发送的功率配置信息,并且添加了其对应的消息发送和接收函数,并添加定时器用于拓扑控制的执行。另外,还修改AODV的HELLO消息及其处理流程,以解决拓扑控制后可能出现的单向信道问题。POSITION消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="477"/> POWER消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="480"/> Hello消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="479"/> 所述的编队网络结构建立具体内容包括:根据编队内部拓扑控制步骤所建立的编队内拓扑结构即编队内成员间的邻接关系,采用最大连接度分簇算法对各编队进行分簇,形成簇首、簇的普通成员及编队内网关。其中,簇首和它的普通成员及编队内网关组成低级网络,而簇首之间组成高级网络,各低级网络节点通过在频段1上以通过拓扑控制得到的最佳发射功率交互HELLO报文,建立起低级网络结构,簇首维护簇的普通成员表及编队内网关表,普通节点记录本簇的簇首,编队内网关则维护所有可达的本编队簇首表;各高级网络节点在频段2上以最大发射功率交互HELLO报文,建立起高级网络结构。而当某一节点接收到其他编队的簇首广播的HELLO报文,且本节点为非簇首节点时,将自己变为编队间网关(同时还保持自己在本编队内的身份),开始在频段2上以最大发射功率交互HELLO报文,成为高级网络节点,各编队间网关和簇首都维护一张编队间通信表,其成员包括所有可达的簇首及编队间网关。建立好网络结构后,低级节点间的通信将在频段1上以最佳发射功率进行,而高级节点间的通信将在频段2上以最大发射功率进行。所述的编队网络结构维护具体内容包括:各低级节点和高级节点通过在各自的频段上周期性地交互HELLO报文来维护相应的网络结构,当节点发现它所维护表格中的成员超过生存期时,将其从成员表中删除,各节点的状态也可能随之发生变化:对于低级节点,当簇首发现它的普通成员个数为0时,将自己的状态改为未分配;当簇的普通成员发现自己的簇首已不存在时,将自己的状态改为未分配;当网关发现它可达的簇首个数为1时,将自己的状态改为普通成员。而对于高级节点,当编队间网关发现自己的编队间通信成员已没有外编队成员时,则自己不再是编队间网关。所述的寻找传输路由具体内容包括:传输路由以AODV路由协议为基础,如果是编队内部通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,在频段1上采用单频分级的路由方式:普通节点到簇首,簇首到编队内网关,编队内网关再到可达的其它簇首,直到找到目的节点;如果是编队间通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,采用一种新的双频分级路由方式:在协议中设置一个快速路由请求次数的上限值,当发往同一目的的路由请求次数小于此上限值时,采用传统的双频分级路由方式:普通节点到簇首,簇首再到普通节点或可达的其它簇首及编队间网关,直到找到目的节点。低级节点之间的通信在频段1上进行,而高级节点之间的通信在频段2上进行;当路由请求次数已超过上限值时,说明高级网络可能不连通,则同时采用单频分级和双频分级两种方式:普通节点在频段1上以最佳发射功率向自己的簇首发送路由请求,簇首则同时在频段1和频段2上分别以最佳发射功率和最大发射功率向自己的编队内网关和编队间通信成员发送路由请求,编队内网关在频段1上以最佳发射功率向自己的可达簇首发送路由请求,而编队间网关则在频段2上以最大发射功率向自己的编队间通信成员发送路由请求,直到找到目的节点。另外,在发送路由请求报文RREQ过程中建立或更新反向路由以及返回路由回复报文RREP过程中建立或更新正向路由时记录本条路由所使用的信道,以保证数据包的正确传输。所述的传输路由维护具体内容包括:对于洪泛路由及单频分级路由,各节点通过在频段1上周期性地交互HELLO报文来确认邻居的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,则认为该邻居节点已移动或故障,并将它到该邻居节点的链路标记为断开;而对于双频分级路由,各低级节点及高级节点分别通过在各自的频段上周期性地交互HELLO报文来确认其邻居节点的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,就认为该节点已移动或故障,并将到它的链路标记为断开。所述的路由差错控制具体内容包括:如果节点在使用某条链路时发现该链路断开,则从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知受链路断开影响的节点,通知相关节点将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由,并停止在此断开路由上继续发送数据。所述的重新建立路由具体内容包括:某一节点如果需要发送数据包,而当传输路由中断,发现到目的节点的路由已经不存在时,则该节点将要传输的数据包进行缓存,为目的节点继续寻找并建立一条新的路由,路由建立成功后,再将缓存里的数据包发送出去。下面结合附图和实施例对本发明做进一步的说明。如图1所示,本方法由编队内拓扑控制、编队网络结构建立、编队网络结构维护、寻找传输路由、传输路由维护、路由差错控制和重新建立路由七个步骤组成。1、编队内拓扑控制步骤图2中,编队内拓扑控制的步骤为:首先是网络初始化时,将所有节点的发射功率都设置为最大值;然后各编队成员通过GPS定位系统获得自己的位置信息,并将该信息发送到本编队指定的中心节点;中心节点接收并缓存本编队内所有其他节点的位置信息,当全部搜集到后运行集中式拓扑控制算法,计算各节点的最佳发射功率值,然后将各节点的最佳发射功率值分别发送到对应节点;当编队内所有节点都接收到最佳发射功率消息后,将自己的发射功率设置为该最佳值。拓扑控制的实现以典型的无线自组网路由协议AODV为基础,在AODV路由协议中添加两种控制消息:POSITION和POWER,分对应于编队内节点向中心节点发送的拓扑信息以及中心节点向各对应节点发送的功率配置信息,并且添加了其对应的消息发送和接收函数,并添加定时器用于拓扑控制的执行。同时,还修改AODV的HELLO消息及其处理流程,以解决拓扑控制后可能出现的单向信道问题。POSITION消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="483"/>
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="475"/> POWER消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="479"/> Hello消息格式如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="480"/> 图3中,发送POSITION消息的具体步骤为:首先为新的POSxa0ITIxa0ON控制包分配一段内存空间,然后为POSITION消息的各个变量赋值,判断路由表中是否有到中心节点的路由项,如果没有到中心节点的路由项,则添加到中心节点的路由项目,然后判断路由是否有效,如果有到中心节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POSITION消息,然后启动重发定时器,如果路由表中没有到中心节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POSITION消息,发送RREQ寻找到中心节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。图4中,接收POSITION消息的具体步骤为:判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POSITION消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POSITION消息的编队标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POSITION消息中携带的源坐标点的坐标信息,然后判断是否收到本区域全部节点的坐标信息,如果没有收到全部信息,则继续等待接收信息;如果收到本区域全部节点的坐标信息,则调用集中式拓扑控制算法,然后调用发送功率函数,将最佳功率发送到相应节点。图5中,发送POWER消息的具体步骤为:首先为新的POWER控制包分配一段内存空间,然后为POWER消息的各个变量赋值,判断路由表中是否有到目的节点的路由项,如果没有到目的节点的路由项,则添加到目的节点的路由项目,然后判断路由是否有效,如果有到目的节点的路由项目,则直接判断路由是否有效;如果存在有效路由,则直接发送POWER消息,然后启动重发定时器,如果路由表中没有到目的节点的有效路由,则判断本节点是否为源节点,如果本节点是源节点,则缓存POWER消息,发送RREQ寻找到目的节点的路由,然后启动重发定时器,如果本节点不是源节点,则退出。图6中,接收POWER消息的具体步骤为:判断本机是否为源节点,如果是源节点,则将包丢弃,退出程序,如果不是源节点,则判断POWER消息的TTL是否为零,如果TTL是零,则将包丢弃,退出程序,如果TTL不是零,则判断本机是否为目的节点;如果本机不是目的节点,则判断中间节点是否有到目的的路由项,如果没有到目的的路由项,则将包丢弃,退出程序,如果有到目的的路由项,则判断路由是否有效,如果有效,则直接转发,如果无效,则将包丢弃,退出程序;如果本机是目的节点,则判断POWER消息的编队标识是否与本机一致,如果不一致,则将包释放,退出程序,如果一致,则保存POWER消息中携带的本节点功率信息,然后判断本区域全部节点是否都收到功率信息,如果不是全部节点都收到功率信息,则继续等待;如果本区域全部节点都收到功率信息,则将本节点的发射功率设置为记录的最佳值。2、编队网络结构建立步骤根据编队内部拓扑控制步骤所建立的编队内拓扑结构,即编队内成员间的邻接关系,采用最大连接度分簇算法对各编队进行分簇,形成簇首、簇的普通成员及编队内网关。其中,簇首和它的普通成员及编队内网关组成低级网络,而簇首和编队间网关组成高级网络。各低级网络节点通过在频段1上以通过拓扑控制得到的最佳发射功率交互HELLO报文,建立起低级网络结构,簇首维护簇的普通成员表以及编队内网关表,普通节点记录本簇的簇首,编队内网关则维护所有可达的本编队簇首表;各高级网络节点在频段2上以最大发射功率交互HELLO报文,建立起高级网络结构。当某一节点接收到其他编队的簇首广播的HELLO报文,且本节点为非簇首节点时,将自己变为编队间网关(同时还保持自己在本编队内的身份),开始在频段2上以最大发射功率交互HELLO报文,成为高级网络节点,各编队间网关和簇首都维护一张编队间通信表,其成员包括所有可达的簇首及编队间网关。建立好网络结构后,低级节点间的通信将在频段1上以最佳发射功率进行,而高级节点间的通信将在频段2上以最大发射功率进行。需要注意的是,由于各低级节点是在频段1上以各自的最佳发射功率交互HELLO报文的,因此可能出现单向信道的问题,另外,无线信道中复杂的传播环境也可能导致单向信道的出现。通过交互HELLO报文建立的簇结构须保证成员间的邻居关系是双向的。图7中,发送HELLO分组流程包括下列步骤:首先判断本节点是否为簇首或编队间网关节点,如果是,则在信道1上以最佳发射功率发送HELLO分组,并在信道2上以最大发射功率发送HELLO分组;如果本节点不是簇首或编队间网关,则仅在信道1上以最佳发射功率发送HELLO分组。图8中,接收HELLO分组流程包括下列步骤:首先判断本节点是否是从信道1上接收到HELLO分组,如果是,则判断本节点与发送节点之间的距离是否小于本节点的辐射半径,如果不小于,则本节点和发送节点间的邻居关系是单向的,将分组释放,函数返回;如果两节点间的距离小于本节点的辐射半径,则本节点和发送节点的邻居关系是双向的,然后查看发送节点是否已存在于本节点的邻居列表中,如果已存在,则更新此邻居节点的有效期,并建立或更新簇结构。如果本节点的邻居列表中没有储存发送节点,则将此发送节点添加到本节点的邻居列表中,并建立或更新簇结构,其具体内容包括:普通节点添加或更新簇首;簇首添加或更新普通成员或网关;网关添加或更新可达簇首;普通节点若收到多个簇首的HELLO分组,则变为网关。如果本节点不是在信道1上接收到HELLO分组,即是在信道2上接收到的,则判断本节点是否为簇首节点或编队间网关,如果是,则添加或更新高级网络成员表,如果本节点不是簇首或编队间网关,则将分组释放并返回;3、编队网络结构维护步骤各低级节点和高级节点通过在各自的频段上周期性地交互HELLO报文来维护相应的网络结构,当节点发现它所维护表格中的成员超过生存期时,将其从成员表中删除,各节点的状态也可能随之发生变化:对于低级节点,当簇首发现它的普通成员个数为0时,将自己的状态改为未分配;当簇的普通成员发现自己的簇首已不存在时,将自己的状态改为未分配;当网关发现它可达的其它簇首个数为1时,将自己的状态改为普通成员。而对于高级节点,当编队间网关发现自己的编队间通信成员已没有外编队成员时,则自己不再是编队间网关。4、寻找传输路由步骤传输路由以AODV路由协议为基础,如果是编队内部通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,在信道1上采用单频分级的路由方式:普通节点到簇首,簇首到编队内网关,编队内网关再到可达的其它簇首,直到找到目的节点;如果是编队间通信,则对所有未分配的节点仍采用AODV洪泛的方式广播路由请求消息,而对于所有已加入簇结构的节点,采用一种新的双频分级路由方式:在协议中设置一个快速路由请求次数的上限值,当发往同一目的的路由请求次数小于此上限值时,采用传统的双频分级路由方式:普通节点到簇首,簇首再到普通节点或可达的其它簇首及编队间网关,直到找到目的节点。低级节点之间的通信在信道1上进行,而高级节点之间的通信在信道2上进行;当路由请求次数已超过上限值时,说明高级网络可能不连通,则同时采用单频分级和双频分级两种方式:普通节点在信道1上以最佳发射功率向自己的簇首发送路由请求,簇首则同时在信道1和信道2上分别以最佳发射功率和最大发射功率向自己的编队内网关和编队间通信成员发送路由请求,编队内网关在信道1上以最佳发射功率向自己的可达簇首发送路由请求,而编队间网关则在信道2上以最大发射功率向自己的编队间通信成员发送路由请求,直到找到目的节点。另外,在发送路由请求报文RREQ过程中建立或更新反向路由以及返回路由回复报文RREP过程中建立或更新正向路由时记录本条路由所使用的信道,以保证数据包的正确传输。图9中,发送RREQ分组流程包括下列步骤:首先确保路由表中已经建立一条到目的节点的路由条目,判断该路由是否有效,如果路由有效则函数返回,如果路由无效,则判断上次发送的RREQ是否超时,如果没有超时,则函数返回,如果超时,则判断路由请求次数是否已超过上限;如果路由请求次数超过上限,则将路由请求次数清零,释放缓存的分组,函数返回;如果路由请求次数没有超过上限,则将路由请求次数加1,并重新设定TTL值及RREQ的超时时间;然后判断本节点是否已分配,如果是未分配,则在信道1上广播RREQ分组,如果本节点已分配,则判断本节点与目的是否在同一个编队,如果本节点与目的在同一个编队,则进行编队内寻路,如果本节点与目的不在同一个编队,则进行编队间寻路。图10中,编队间寻路首先判断本节点是否是簇首或编队间网关,如果本节点不是簇首或编队间网关,则进行编队内寻路;否则再判断高级网络成员表是否存在目的节点,如果存在,则在信道2上直接向目的节点发送RREQ,函数返回;如果高级网络成员表中不存在目的节点,则判断高级网络成员表中是否存在和目的节点同一个编队的节点,如果存在,则在信道2上向所有目的编队的成员节点发送RREQ,函数返回;否则在信道2上向所有高级网络成员发送RREQ,并且判断路由条目中记录的请求次数是否大于上限值,如果请求次数已经大于上限值,则在信道1上向自己的编队内网关发送RREQ,函数返回;如果请求次数小于等于上限值,函数返回。图11中,编队内寻路首先判断本节点是否普通成员,如果是普通成员,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己的簇首发送RREQ,如果一致,则再判断邻居列表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己的簇首发送RREQ;如果本节点不是普通成员,则判断本节点是否簇首,如果是簇首,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己所有的编队内网关和可达簇首发送RREQ,如果一致,则再判断簇成员表、编队内网关表以及可达簇首表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己所有的编队内网关和可达簇首发送RREQ;如果本节点不是簇首,则判断本节点是否编队内网关,如果是编队内网关,则判断本节点编队标识和目的节点编队标识是否一致,如果不一致,则在信道1上向自己所有的可达簇首发送RREQ,如果一致,则再判断可达簇首表中是否存在目的节点,如果存在,则在信道1上向目的发送RREQ,函数返回;如果不存在,则在信道1上向自己所有的可达簇首发送RREQ;图12中,发送RREQ分组流程包括下列步骤:首先判断是否为环路包,如果是环路包,则释放分组并返回,如果不是环路包,则继续判断是否为重复包,如果是重复包,则释放分组并返回,否则将此分组添加到RREQ的广播ID表中,并添加或更新一条到源节点的反向路由,记录本路由的所使用的信道,并发送可能缓存的到源的数据包。然后再从路由表中查找到目的节点的路由,如果本节点就是目的节点,则直接向源节点返回路由回复分组RREP,如果本节点不是目的节点,则继续判断本节点是否有到目的节点的最新路由,如果有最新路由,则直接向源节点返回路由回复分组RREP,否则继续判断RREQ标识是否为快速路由查找标识;如果RREQ标识不是快速路由查找标识,则在信道1上广播转发RREQ分组,否则进行快速路由查找。图13中,快速路由查找1,首先判断本节点与目的是否在同一个编队,如果不在,则再判断高级网络成员表是否为空,如果不为空,则判断高级网络成员表中是否存在目的节点;如果本节点与目的在同一个编队或者高级网络成员表为空,则进行快速路由查找2。如果高级网络成员表中存在目的节点,则在信道2上向目的节点转发RREQ分组,返回;否则判断高级网络成员表中是否存在目的编队的成员,如果存在,则在信道2上向所有目的编队的成员转发RREQ分组,返回;如果不存在,则在信道2上向所有高级网络成员表中节点转发RREQ分组,并且判断快速路由请求次数是否超过上限,如果超过则在信道1上向所有编队内网关转发RREQ,如果没有超过上限则返回;图14中,快速路由查找2,首先判断本节点是否为普通成员,如果是普通成员,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断邻居表中是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果邻居表中不存在目的节点,则判断本节点是否与源在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,返回;否则在信道1上向自己的簇首转发RREQ;如果本节点与目的不在同一个编队、与源在一个编队、本节点不是编队间网关,则在信道1上向自己的簇首转发RREQ。如果本节点不是普通成员,则判断本节点是否簇首,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断簇成员表、编队间网关表、可达簇首表是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果不存在目的节点,则判断本节点是否与源在同一个编队,如果不在,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,并且判断快速路由请求次数是否超过上限,如果没有超过则返回;如果本节点与目的不在同一个编队,或者与源在同一个编队,或者高级网络成员表中不存在目的编队成员,或者快速请求次数超过上限,则判断可达簇首表、编队间网关表是否为空,如果为空,则在信道1上广播转发RREQ,函数返回;如果不为空,则在信道1上向所有可达簇首和编队间网关转发RREQ,函数返回。图15中,如果本节点不是簇首,则判断本节点是否为编队内网关,如果是,则判断本节点与目的节点是否在同一个编队,如果在同一个编队,则判断可达簇首表是否存在目的节点,如果存在则在信道1上向目的转发RREQ,函数返回;如果不存在目的节点,则判断本节点是否与源在同一个编队,以及判断本节点是否为编队间网关,如果本节点与源不在同一个编队,且本节点是编队间网关,则判断高级网络成员表中是否存在目的节点,如果存在,则在信道2上向目的转发RREQ,返回;如果不存在,则判断高级网络成员表中是否存在目的编队成员,如果存在则在信道2上向所有目的编队成员转发RREQ,返回;如果本节点与目的不在同一个编队,或者与源在一个编队,或者本节点不是编队间网关,或者高级网络成员表中不存在目的编队成员,则判断可达簇首表是否为空,如果为空,则在信道1上广播转发RREQ,如果不为空,则在信道1上向所有可达簇首转发RREQ,返回。5、传输路由维护步骤所述的传输路由维护具体内容包括:对于洪泛路由及单频分级路由,各节点通过在频段1上周期性地交互HELLO报文来确认邻居的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,则认为该邻居节点已移动或故障,并将它到该邻居节点的链路标记为断开;而对于双频分级路由,各低级节点及高级节点分别通过在各自的频段上周期性地交互HELLO报文来确认其邻居节点的存在,如节点在规定的时间间隔内连续多次没有收到其某一邻居节点发来的HELLO报文,就认为该节点已移动或故障,并将到它的链路标记为断开。6、路由差错控制步骤如果节点在使用某个链路时发现该链路断开,则从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知受链路断开影响的节点,通知相关节点将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由。7、重新建立路由步骤某一节点如果需要发送数据包,而当传输路由中断,发现到目的节点的路由已经不存在时,则该节点将要传输的数据包进行缓存,为目的节点继续寻找并建立一条新的路由,路由建立成功后,再将缓存里的数据包发送出去。本发明能够实现编队内及编队间各成员之间快速可靠地建立路由和传输数据,并能够降低无线传输中的干扰,进一步提高网络容量,以及延长节点寿命,提高网络的生存期。